From b776f895f9bc7f50e5f19f444e3889398c33ca00 Mon Sep 17 00:00:00 2001 From: Herman Fries Date: Thu, 14 May 2026 15:09:40 +0200 Subject: [PATCH] status/volume: Show input only if stream is running Input indicator should only show if a stream is in running state, ignoring passive streams such as echo-cancellation or denoise filters. The stream-changed listener is required as streams might transition between idle and running states. Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/work_items/7217 Part-of: --- js/ui/status/volume.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/js/ui/status/volume.js b/js/ui/status/volume.js index 99169e024..fc49cb9ef 100644 --- a/js/ui/status/volume.js +++ b/js/ui/status/volume.js @@ -376,6 +376,7 @@ class InputStreamSlider extends StreamSlider { 'active-input-update', (c, id) => this._setActiveDevice(id), 'stream-added', () => this._maybeShowInput(), 'stream-removed', () => this._maybeShowInput(), + 'stream-changed', () => this._maybeShowInput(), this); this.iconName = 'audio-input-microphone-symbolic'; @@ -414,8 +415,10 @@ class InputStreamSlider extends StreamSlider { 'org.PulseAudio.pavucontrol', ]; - showInput = this._control.get_source_outputs().some( - output => !skippedApps.includes(output.get_application_id())); + showInput = + this._control.get_sources().some(source => source.state === Gvc.MixerStreamState.RUNNING) && + this._control.get_source_outputs().some(output => + !skippedApps.includes(output.get_application_id())); } this._showInput = showInput; -- 2.39.5